/*
*	Developed by Leonardo Chatain and Pedro Dusso, at Universidade Federal do Rio Grande do Sul, Brasil, 2009/1
*	Source available at glpacman.codeplex.com
*/

#pragma once
#ifndef _PERSPECTIVE_CAMERA_H_
#define _PERSPECTIVE_CAMERA_H_

#include "camera.h"

class PerspectiveCamera :
	public Camera
{
private:
	float angle;

public:
	PerspectiveCamera(void);
	PerspectiveCamera(float posX, float posY, float posZ, float lookAtX, float lookAtY, float lookAtZ);
	PerspectiveCamera(Point3D pos, Point3D look);
	PerspectiveCamera(Point3D pos, Vector3D look);
	PerspectiveCamera(float posX, float posY, float posZ, float lookAtX, float lookAtY, float lookAtZ, float Near, float Far);
	PerspectiveCamera(Point3D position, Vector3D lookAt, float Near, float Far);
	PerspectiveCamera(Point3D position, Point3D lookAt, float Near, float Far);
	~PerspectiveCamera(void);

	void view();

	//Getters and setters
	inline void setAngle(float Angle) { angle = Angle; }
	inline float getAngle() { return angle; }
};

#endif